package org.gauth4me.core;

/**
 * Represents a hash function.
 */
interface HashFunction {
  /**
   * Calculates message hash.
   *
   * @param data the message
   * @return hash of the data
   */
  byte[] hash(byte[] data);

  /**
   * Get a hash block size for this function.
   *
   * @return hash block size in bytes
   */
  int getBlockSize();

  /**
   * Get a resulting hash size for this function.
   *
   * @return output hash size in bytes
   */
  int getHashSize();
}
